#include <iostream>
#include <vector>

typedef std::vector<std::vector<int>> Mat;

int main()
{
    // std::vector<int> v1{1,2,3,4,5,6};   // 6
    std::vector<std::vector<int>> mat(10, std::vector<int>(10, 1));

    for (auto row : mat)
    { // row ->  int rand (void)
        for (auto item : row)
            std::cout << item << " ";
        std::cout << std::endl;
    }

    // auto it = v1.cbegin();
    // it++;
    // auto dd = it;
    // dd++;
    // dd++;
    // v1.insert(it, 30, 100);insertinsert
    // std::vector<int> v2(5, 0);
    // auto itt = v2.begin();
    // itt++;
    // v2.insert(itt, v1.begin(), v1.end());

    // v1.erase(it, dd);  //  [it, dd)
    // v1.push_back(100);
    // std::cout << v1.size() << std::endl;
    // std::cout << v1.capacity() << std::endl;

    // std::cout << v1 << std::endl;
    // for (size_t i = 0; i < 5; i++)
    // {
    //     std::cout << v1[i] << std::endl;
    // }

    // v1.push_back(25v1.);

    // int &a = v1.at(1);

    // std::cout << a << ", " << v1[-1] << std::endl;
    // v1.resize(4);
    // v1.resize(6);

    // for (auto it = v1.begin(); it != v1.end(); ++it){
    //     std::cout << *it<< " ";
    // }
    // std::cout << std::endl;
    // for (auto it = v2.begin(); it != v2.end(); ++it){
    //     std::cout << *it<< " ";
    // }
    // std::cout << std::endl;

    // a = 32;
    // std::cout  << v1[2] << std::endl;

    // // assign
    // v1.assign(2, 3);
    // for (size_t i = 0; i < 6; i++)
    // {
    //     std::cout << v1[i] << std::endl;
    // }

    return 0;
}

// -o object  可执行二进制文件的名字            36k
// -g 用于在生成的可执行二进制文件中添加调试信息  110k
// -std=c++14
// -O3    optimization 优化  -O1 / -O2  / -O3
// g++ vector.cpp -o main -std=c++14 -O3       18k